package ru.hh.team02.chat.server;

import ru.hh.team02.chat.client.ClientRegistry;
import ru.hh.team02.chat.database.DatabaseServiceInterface;
import ru.hh.team02.chat.database.SuperScalableNoSqlDbWithSharding;
import ru.hh.team02.chat.logger.SimpleLogger;
import ru.hh.team02.chat.messaging.SendingService;

public class Services {
    // XXX [Oleg] We should now read it from DB (otherwise there will be inconsistency:
    // XXX [Oleg] one thing should be declared only in ONE place of the code.
    private static final String[] ROOM_NAMES = { "r1", "r2" };


    public static ClientRegistry REGISTRY = new ClientRegistry(ROOM_NAMES);
    public static SendingService MESSENGER = new SendingService();
    public static DatabaseServiceInterface dbService = new SuperScalableNoSqlDbWithSharding();

    // XXX [MY] About System.out. Why pass it ? You can get it in SimpleLogger constructor.
    // XXX [Oleg] I would follow this suggestion.
    public static final SimpleLogger ADMIN_LOGGER = new SimpleLogger(System.out);

}
